//
// Created by lvyer on 2021/11/29.
//
/**
 * 用于渲染流程总控制
 */
#ifndef LEARNOPENGL_RENDERERCONTROL_H
#define LEARNOPENGL_RENDERERCONTROL_H

#include "common/AbstractBaseFilter.h"
#include "common/AlphaFilter.h"

class RendererControl {
public:
    bool isOpenAlpha = false;

    RendererControl();

    ~RendererControl();

    void init();

    void draw();

    void onSurfaceChanged(int width, int height);

    //暂时直接对外提供效果配置方法
    void setAlphaValue(float alphaValue);


private:
    //定义链表存储渲染流程
    AbstractBaseFilter *startFilter; //渲染起始
    //alpha过滤器
     AlphaFilter *alphaFilter;
    //....中间无数个其他功能
    AbstractBaseFilter *screenFilter; //渲染到屏幕
};

#endif //LEARNOPENGL_RENDERERCONTROL_H
